@@ -11,7 +11,7 @@ from TimeConvert import TimeConvert as tc  | 
            ||
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                from account.models import UserInfo  | 
            
| 13 | 13 | 
                from kodo.decorators import check_admin  | 
            
| 14 | 
                -from mch.models import AdministratorInfo, ConsumeShotUnbindingInfo  | 
            |
| 14 | 
                +from mch.models import AdministratorInfo, ConsumeShotUnbindingInfo, ConsumeInfoSubmitLogInfo, ModelInfo  | 
            |
| 15 | 15 | 
                 | 
            
| 16 | 16 | 
                 | 
            
| 17 | 17 | 
                @logit  | 
            
                @@ -52,3 +52,36 @@ def consumer_shot_unbinding_list(request, administrator):  | 
            ||
| 52 | 52 | 
                'count': count,  | 
            
| 53 | 53 | 
                'left': left  | 
            
| 54 | 54 | 
                })  | 
            
| 55 | 
                +  | 
            |
| 56 | 
                +  | 
            |
| 57 | 
                +@logit  | 
            |
| 58 | 
                +@check_admin  | 
            |
| 59 | 
                +def consumer_shot_unbinding_delete(request, administrator):  | 
            |
| 60 | 
                +    pk = request.POST.get('pk', '')
               | 
            |
| 61 | 
                +  | 
            |
| 62 | 
                + unbinding_info = ConsumeShotUnbindingInfo.objects.get(pk=pk)  | 
            |
| 63 | 
                +  | 
            |
| 64 | 
                + unbinding_info.status = False  | 
            |
| 65 | 
                + unbinding_info.delete()  | 
            |
| 66 | 
                +  | 
            |
| 67 | 
                + log_info = ConsumeInfoSubmitLogInfo.objects.get(pk=unbinding_info.submit_pk)  | 
            |
| 68 | 
                + log_info.status = True  | 
            |
| 69 | 
                + log_info.delete_type = ConsumeInfoSubmitLogInfo.UNDELETE  | 
            |
| 70 | 
                + log_info.save()  | 
            |
| 71 | 
                +  | 
            |
| 72 | 
                + if not log_info.unbound:  | 
            |
| 73 | 
                + try:  | 
            |
| 74 | 
                + user = UserInfo.objects.get(user_id=log_info.user_id)  | 
            |
| 75 | 
                + user.shots_num += 1  | 
            |
| 76 | 
                + user.integral += log_info.integral  | 
            |
| 77 | 
                + model = ModelInfo.objects.get(model_id=log_info.model_id)  | 
            |
| 78 | 
                +  | 
            |
| 79 | 
                + if user.level < UserInfo.MEMBER_BLACK_GOLD and model.shot_type_id != 'V6PkivthL4sdADp4GNpQ4C':  | 
            |
| 80 | 
                + user.level += 1  | 
            |
| 81 | 
                + user.save()  | 
            |
| 82 | 
                +  | 
            |
| 83 | 
                + except UserInfo.DoesNotExist:  | 
            |
| 84 | 
                + pass  | 
            |
| 85 | 
                +  | 
            |
| 86 | 
                +  | 
            |
| 87 | 
                + return response(200, 'Get Cosumer Shot Unbinding Delete Success', u'消费者镜头解绑记录删除成功')  | 
            
                @@ -552,17 +552,19 @@ def consumer_shot_unbinding(request):  | 
            ||
| 552 | 552 | 
                except UserInfo.DoesNotExist:  | 
            
| 553 | 553 | 
                return response(UserStatusCode.USER_NOT_FOUND)  | 
            
| 554 | 554 | 
                 | 
            
| 555 | 
                - exist = ConsumeInfoSubmitLogInfo.objects.filter(user_id=user_id, model_id=model_id, serialNo=sn, dupload=False, test_user=False).exists()  | 
            |
| 556 | 
                -  | 
            |
| 557 | 
                - if exist:  | 
            |
| 558 | 
                - unbound = ConsumeInfoSubmitLogInfo.objects.filter(user_id=user_id, model_id=model_id, serialNo=sn, dupload=False, test_user=False, unbound=True).exists()  | 
            |
| 559 | 
                -  | 
            |
| 555 | 
                + try:  | 
            |
| 556 | 
                + log_info = ConsumeInfoSubmitLogInfo.objects.get(pk=submit_pk)  | 
            |
| 560 | 557 | 
                ConsumeInfoSubmitLogInfo.objects.filter(model_id=model_id, serialNo=sn).update(delete_type=ConsumeInfoSubmitLogInfo.UNBINDING, status=False)  | 
            
| 558 | 
                + if not log_info.unbound:  | 
            |
| 559 | 
                + if user.shots_num <= 5:  | 
            |
| 560 | 
                + user.level -= 1  | 
            |
| 561 | 561 | 
                 | 
            
| 562 | 
                - if not unbound and user.shots_num <= 5:  | 
            |
| 563 | 
                - user.level -= 1  | 
            |
| 564 | 
                - if not unbound:  | 
            |
| 562 | 
                + user.integral -= log_info.integral  | 
            |
| 563 | 
                + user.integral = max(user.integral, 0)  | 
            |
| 564 | 
                +  | 
            |
| 565 | 565 | 
                user.shots_num -= 1  | 
            
| 566 | 
                +  | 
            |
| 567 | 
                +  | 
            |
| 566 | 568 | 
                user.save()  | 
            
| 567 | 569 | 
                 | 
            
| 568 | 570 | 
                         ConsumeShotUnbindingInfo.objects.update_or_create(user_id=user_id, submit_pk=submit_pk, defaults={
               | 
            
                @@ -571,7 +573,7 @@ def consumer_shot_unbinding(request):  | 
            ||
| 571 | 573 | 
                'submit_at': submit_at,  | 
            
| 572 | 574 | 
                'reason': reason,  | 
            
| 573 | 575 | 
                })  | 
            
| 574 | 
                - else:  | 
            |
| 576 | 
                + except:  | 
            |
| 575 | 577 | 
                ConsumeInfoSubmitLogInfo.objects.filter(user_id=user_id, model_id=model_id, serialNo=sn).update(delete_type=ConsumeInfoSubmitLogInfo.UNBINDING, status=False)  | 
            
| 576 | 578 | 
                 | 
            
| 577 | 579 | 
                return response(200, 'Consume Shot Unbinding Success', u'消费者镜头解绑成功')  | 
            
                @@ -162,6 +162,7 @@ urlpatterns += [  | 
            ||
| 162 | 162 | 
                url(r'^admin/record/sale/batch$', admin_views.record_sale_batch, name='record_sale_batch'),  | 
            
| 163 | 163 | 
                url(r'^admin/record/warehouse$', admin_views.record_warehouse, name='record_warehouse'),  | 
            
| 164 | 164 | 
                url(r'^admin/consumer/shot/unbinding/list$', consumer_admin_view.consumer_shot_unbinding_list, name='consumer_shot_unbinding_list'),  | 
            
| 165 | 
                + url(r'^admin/consumer/shot/unbinding/delete$', consumer_admin_view.consumer_shot_unbinding_delete, name='consumer_shot_unbinding_delete'),  | 
            |
| 165 | 166 | 
                 | 
            
| 166 | 167 | 
                url(r'^admin/list/model$', admin_views.model_list, name='model_list'),  | 
            
| 167 | 168 | 
                url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'),  | 
            
                @@ -846,6 +846,7 @@ class ConsumeShotUnbindingInfo(BaseModelMixin, BrandInfoMixin):  | 
            ||
| 846 | 846 | 
                user = UserInfo.objects.get(user_id=self.user_id)  | 
            
| 847 | 847 | 
                 | 
            
| 848 | 848 | 
                         return {
               | 
            
| 849 | 
                + 'pk': self.pk,  | 
            |
| 849 | 850 | 
                'user_id': self.user_id,  | 
            
| 850 | 851 | 
                'phone': user.phone,  | 
            
| 851 | 852 | 
                'model_info': model_info,  |